package com.gjintel.framework.dept.service;

import java.util.List;

import com.gjintel.framework.dept.model.Dept;
import com.gjintel.framework.user.model.User;
import com.gjintel.sdk.base.dao.Page;
import com.gjintel.sdk.base.dao.Sort;
import com.gjintel.sdk.base.service.IBaseService;
import com.gjintel.sdk.dto.TreeDto;

public interface IDeptService extends IBaseService {
	/**
	 * @description 获得所有的机构信息
	 * @author fengya
	 * @date 2015-7-31 上午10:48:41
	 * @return
	 * @return List<Dept>
	 */
	List<Dept> findAll();

	/**
	 * @description 查询机构树的信息
	 * @author fengya
	 * @date 2015-7-31 上午10:56:28
	 * @param treeList
	 * @param id
	 * @param nodeName
	 * @param selectIds
	 * @param isDeptTreeDialog
	 * @return
	 * @return List<String>
	 */
	List<String> getDeptTree(List<TreeDto> treeList, String id, String nodeName, String selectIds, boolean isDeptTreeDialog,boolean isRoot,boolean isManager);

	/**
	 * @description 分页查找数据
	 * @author fengya
	 * @date 2015-7-31 上午10:56:42
	 * @param page
	 * @param dept
	 * @param sort
	 * @return void
	 */
	@SuppressWarnings("unchecked")
	void findAll(Page page, Dept dept, Sort sort,int loginUserType,String loginUserDeptUnit,String deptId);

	/**
	 * @description 根据选择的ID进行删除数据
	 * @author fengya
	 * @date 2015-7-31 上午10:56:54
	 * @param deleteIds
	 * @throws Exception
	 * @return void
	 */
	void removeData(String deleteIds,User user);

	/**
	 * @方法名：getUserTree
	 * @功能说明：根据节点ID，和查询名称，得到人员树
	 * @author fengya
	 * @date 2014-4-26 下午04:00:13
	 * @param treeList
	 *            树节点的集合
	 * @param id展示节点下所有的孩子几点的ID
	 * @param nodeName
	 *            查询节点的名称
	 * @return
	 * @return List<String>
	 */
//	public List<String> getUserTree(List<TreeDto> treeList, String id, String nodeName, String selectIds);
}
